The disclosure relates generally to systems that generate composed frames and more particularly to systems that employ display pipes to generate multi-view composed frames.
Display pipes are typically used in systems that generate single-view (e.g. 2D) or multi-view (e.g. 3D) images. These display pipes typically contain at least a memory requester that requests and fetches frame data via a single viewport from a display content in a frame buffer, as well as a “packer” and scaler dedicated to each display pipe that provides the image to a display device such as an LED display or other suitable display. The viewport is logic that typically defines starting memory locations and size of an area of the frame buffer that the display pipe has access to for a display frame. Areas outside of the viewport are typically not accessible by the display pipe. For single-view images, only one display pipe has typically been required to generate the images. This is because with single-view images only one dimension (e.g. a flat content) is represented by the frame data in the frame buffer. Thus the memory requestor fetches data as defined by the viewport from the frame buffer, and the packer provides the image to the display device. In contrast, however, frame data for a multi-view image represents more than one dimension. For example, 3D images give the impression of depth. To account for depth, frame data usually comprises left eye view data and right eye view data. The right eye view data is typically similar to the left eye view data but horizontally offset. By combining the right eye view with the left eye view data, a perception of depth is created. Thus generating multi-view images requires reading from the frame buffer data representing at least two views.
However, because multi-view images require reading data from the buffer representing more than one view (e.g. left eye view and right eye view for 3D stereoscopic images), using just one display pipe has not been adequate. The format pattern of the data representing multi-view images may be in the form of composed, or non-composed, frame data. Composed frame data may be in the form of “top/bottom”, “side-by-side”, “frame pack” or any other format known to one of ordinary skill in the art. For example in the “top/bottom” format the frame data associated with one view appears first in the frame buffer, followed by the data for another view. As another example in the “frame pack” format the data representing the multiple views is packed together whereby the beginning of the frame data representing one view is merely offset in the frame buffer from the frame data representing another view. Therefore typically the viewport window for all multi-views would need to provide access to the same areas of the frame buffer. For non-composed frame data, the data representing the multiple views have not been packed together, and would typically reside in separate areas of memory. For example for stereoscopic 3D images, a frame buffer may hold data associated with a left eye view in an area of memory, and data associated with a right eye view in a separate area of memory. Thus, the viewport windows required to read the frame data for the multiple views would need to allow access to different areas of the frame data buffer.
In either the case of composed or non-composed frame data, if a single display pipe were used to provide the multi-view display image, artifacts within the displayed image would result because a single display pipe would not be able to distinguish between the multiple views in the frame buffer. Therefore, one solution has been to use more than one display pipe, whereby each display pipe reads from the frame buffer frame data associated with a different particular eye view. For example, for stereoscopic 3D views, one display pipe would read left eye view data from the frame buffer, while another display pipe would read right eye view data from the frame buffer. The data would then be packed into a multi-view frame to be provided for display. As noted above, although single viewports are known to crop (e.g., scale) a single content in a frame buffer artifacts result when using a single viewport for stereoscopic images. Therefore, two display pipes are used, one for even eye image.
However, many problems arise when using more than one display pipe to generate the same multi-view image. For example, because typically only one display pipe is needed to generate single-view images, each display pipe could be used to provide a different display with single-view images. Thus, a system may support as many displays as it has display pipes when generating only single-view images. However, because providing multi-view images has required more than one display pipe, the system would not be able to support as many displays. Another problem that presents itself when needing to use more than one display pipe to provide images to one display relates to power savings. For example, the system will consume more power to support multi-view display images because more than one display pipe would be required to operate. Thus instead of activating only one display pipe to provide multi-view images, a plurality of display pipes would have to be activated. Many other problems associated with having to use two instead of one display pipe to generate images are realized by those with ordinary skill in the art.